Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Перевантаження функцій

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2011
Тип роботи:
Лабораторна робота
Предмет:
Програмування та алгоритмічні мови

Частина тексту файла

Міністерство освіти і науки України Національний університет „ Львівська політехніка “ Кафедра ЕОМ Звіт З Лабораторної роботи №1:“Перевантаження функцій” Мета роботи: познайомитися із перевантаженням функцій. Короткі теоретичні відомості: С++ дозволяє визначати декілька функцій з одним і тим же іменем, якщо дані функції мають різні набори параметрів (принаймні різні типи параметрів). Нехай оголошені наступні функції: іnt func(іnt, іnt); іnt func(char, double); іnt func(long, double); іnt func(float, ...); // Функція з невизначеним числом аргументів. іnt func(char*, іnt);   При виклику функції з ім’ям func спершу компілятор намагатиметься знайти функцію, формальні аргументи якої відповідають фактичним аргументам без усяких перетворень типів або з використанням тільки неминучих перетворень - наприклад, імені масиву до покажчика або значення змінної до константи або навпаки. char strіng[ ] = "Рядок - це масив символів"; іnt і = func (strіng, 13); // func (char*, іnt); іnt j = func(1995L, 36.6); // func(long, double);   Якщо відповідна функція не знайдена, то здійснюється пошук такої функції, щоб для відповідності формальних і фактичних аргументів досить було використати тільки такі стандартні перетворення, що не спричиняють перетворень цілих типів до типів з плаваючою крапкою і навпаки. При цьому підбирається функція, для якої число таких перетворень було б мінімальним. float a=36.6; j = func('a', a); // func(char, double)   Третім етапом є пошук такої функції, для виклику якої досить здійснити будь-які стандартні перетворення аргументів (і знову так, щоб цих перетворень було якнайменше). іnt l = func("РІК:", 2002.3); // func (char*, іnt)   Далі здійснюється пошук функції, для якої аргументи можна одержати за допомогою всіх перетворень, розглянутих до цього, а також перетворень типів, визначених самим програмістом. Якщо й у цьому випадку єдина потрібна функція не знайдена, то на останньому етапі компілятор пробує знайти відповідність з урахуванням списку невизначених аргументів. Так, при виклику func (1, 2, 3) підходить лише одна функція func(float, ...). Якщо компілятор не знайде ні однієї підходящої функції, тоді буде виведене повідомлення про помилку. ЗАВДАННЯ: Варіант №11 Написати реалізацію перевантажених функцій : int func(int* arr, int length); int func(double * arr, int length); Функція func перевіряє чи в масиві чередуються знаки. Програма: #include<iostream> #include <cstdlib> #include<time.h> using namespace std; int func(int*arr,int lenght) { int n=arr[0],h=0; for(int i=1 ; i<lenght ; i++) { if((double)arr[i]/n<0) {n=arr[i] ; h=1;} else { break; h=0;} } if ( h!=0 ) cout<<endl<<"chereduytsa"<<endl; else cout<<endl<<"ne chereduytsa"<<endl; return 0; } int func(double * arr, int lenght) { double n=arr[0],h=0; for(int i=1 ; i<lenght ; i++) { if(arr[i]/n<0) {n=arr[i] ; h=1;} else { break; h=0;} } if ( h!=0 ) cout<<endl<<"chereduytsa"<<endl; else cout<<endl<<"ne chereduytsa"<<endl; return 0; } int main() { int a; double*k; int*j; cout<<"Vvedit dovzuny masuvy"<<endl; cin>>a; j=new int[a]; k=new double[a]; for(int i=0,e=1;i<a;i++) { j[i]=e*(rand()%9+rand()%9); cout<<j[i]<<" "; e=e*(-1); } func(j,a); for(int i=0;i<a;i++) { k[i]=(rand()%9+rand()%9); cout<<k[i]<<" "; } func(k,a); delete j; delete k; return 0; }  Висновок: На лабораторній роботі №1, я познайомився з перевантаженням функції
Антиботан аватар за замовчуванням

28.01.2013 16:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини